#pragma once
#include <string>
#include "test_exceptions.h"

namespace krryn{
namespace test{
	// assert_equal et cetera

	void fail(const std::string &a_Message = "");
	void assert_true(bool a_Condition, const std::string &a_Message = "");
	void assert_false(bool a_Condition, const std::string &a_Message = "");

	template<typename _Tx, typename _Ty>
	void assert_equals(_Tx a_First, _Ty a_Second, const std::string &a_Message = ""){
		if(!(a_First == a_Second)){
			throw fail_exception(a_Message);
		}
	}

	template<typename _Tx, typename _Ty>
	void assert_not_equals(_Tx a_First, _Ty a_Second, const std::string &a_Message = ""){
		if(!(a_First != a_Second)){
			throw fail_exception(a_Message);
		}
	}
}
}